約 5,248,296 件
https://w.atwiki.jp/sevenlives/pages/608.html
コンパイル 読み:こんぱいる 英語:compile 別名: 意味: コンパイルとはソースコードをオブジェクト・コード?に変換すること。またはアセンブリ言語に変換すること。 人間が書いたソースコードはコンピュータで直接実行できないためコンピュータの実行可能なオブジェクト・コードに変換する作業が必要になる。それをコンパイルという。 コンパイルされたオブジェクト・コードはリンカーにより実行可能なファイルをまとめた実行ファイルとなり初めて実行される。 2019年01月05日 gcc コンパイラ 処理系 実行ファイル コンパイル・エラー? アセンブリ言語 リンカー オブジェクト・コード 分割コンパイル 条件コンパイル クロス・コンパイル?
https://w.atwiki.jp/keiplus/pages/162.html
DLL 逆コンパイル C# Cpp JetBrains VisutalStudio 逆コンパイル 本項は書き立ての記事です。正確な情報は公式サイト、公式ドキュメントでご確認ください。 1.逆コンパイル DLL(ダイナミックリンクライブラリ)を解析してソースコードの状態を見ること。 但し逆コンパイルの行為は多くは禁止されている場合が特に商用アプリには多いので注意が必要。 しかし実態は学習のために逆コンパイルをかけることは珍しくなく、解析した結果を外に出すようなことが無いよう注意が必要。 2.dotPeek [ dotPeek Free .NET Decompiler Assembly Browser by JetBrains ] ( https //www.jetbrains.com/decompiler/ ) 逆コンパイルをするには色々な方法があるが、手っ取り早いのは「dotPeek」を使うこと。 VisualStudioがインストールされていることが条件だが、この記事2021年現在 無料で利用できる。 dotPeekはIntelliJ、PhpStorm等を開発しているJetBrains社が開発している。 3.使い方 dotPeekをインストールし起動すると、「JetBrains dotPeek」が開く。 このメニューからFile⇒Openで、解析したいdllファイルを選ぶだけでよい。 あとはAssembly Explorerに解析結果が出る。 そこから先はVisualStudioデコーディングしている感覚で扱える。 DLLを対象として右クリックから「Export to Project」でエクスポートができる。 VisualStudio本体や他のツールでコードを操作するなどの用途で使えるようになる。 dotPeekはデフォルトでは「C#」のみに対応。 他言語を解析したい場合はライブラリをダウンロードする必要がある。
https://w.atwiki.jp/wak0da1/pages/18.html
- 【覚え(あとで清書)】 これでコンパイル通って exec ffd940 で実行までできた $ h8300-hms-gcc -O -mh -mint32 -T ram3068_ffd940.x -o blilk.coff -nostartfiles ramcrt0.S blink.c -lc $ h8300-hms-objcopy -O srec blink.coff blink.mot ram3068_ffd940.x (ram3068.xを修正) OUTPUT_FORMAT("coff-h8300")。 OUTPUT_ARCH(h8300h) ENTRY("_start") MEMORY { syscall(r) o = 0x000100, l = 0x0200 ram(rwx) o = 0xffd940, l = 0x1800 } 編集予定 みついわさんのところから h8300-hms-gcc の開発環境のrpmパッケージを持ってきてもできた。 今までできなかったのは、exec ffd940 をしてなかったからってだけ。 それなのにいろいろなところを調べまくった。。 最終的にはelf形式もcoff形式もどっちもコンパイルできるような環境にはなったが。。 elf版、coff版で、後日両方まとめておくことにする。 【覚え】ここを読む 【覚え】ここを読む 【覚え】ここを読む 【覚え】ここを読む ヘッダ類 reg3067.h syscall.h を、 /usr/local/h8300-elf/include に、h8 というフォルダを作って入れておく。 念のためパーミッションを 777 にする。 (上記フォルダに入れないと「見つかりません」と言われる) メモリ定義ファイルの修正 ここを参照 iv. リンカスクリプトを修正する の部分を参照し、 今回 h8300-elf-gcc をインストールしたので対応したリンカを使うようにしなければならない ram3068.x を emacs で開き、先頭部分を変更する OUTPUT_FORMAT("coff-h8300") を、 OUTPUT_FORMAT("elf32-h8300") に変える。 コンパイル みついわさんのところからもってきたram3068.xは、コンパイラがh8300-hms-gccを対象にしているため、さっき作った ram3068elf.xを使用してコンパイル&リンクする。 $ h8300-elf-gcc -O -mh -mint32 -T ram3068elf.x -o blink.coff -nostartfiles ramcrt0.S blink.c -lc ここで、最初の"-O" は大文字であることに注意する! 大文字にせず、小文字にしてしまうと以下のようにエラーがでる! (ここでだいぶはまった。。) /usr/local/lib/gcc-lib/h8300-elf/3.2.3/../../../../h8300-elf/bin/ld unrecognised emulation mode h Supported emulations h8300elf h8300helf h8300self collect2 ld はステータス 1 で終了しました 次に中間ファイル(.coff)をモトローラS形式へ変換する # h8300-elf-objcopy -O srec blink.coff blink.mot 転送 みついわさんのところから put コマンドを入手して、以下のようにして put する。 # put -e blink.mot /dev/ttyUSB0 みついわさんによるとこれで自動的にRAM上に転送されたプログラムが実行されるとあるが、 これがどうやらそうでもない。 これを信じてずっと「動かん動かん」と言っていたが、試しに minicom を開いて H8/OS exec ffd940 として実行してやることで初めて作動。ここでもはめられた。 ちなみにソースはこれ。 h8/reg3067.h h8/syscall.h int main(){ P4DDR = 0x01; while(1){ P4DR = 0x00; sleep(5); P4DR = 0x01; sleep(5); } } syscall.h, reg3067.h が、どーこにおいても「見つかりません」と言われた時もあったので、 そういう時はソース blink.c と同じフォルダにおいて、ソースのインクルード行を #include "syscall.h" #include "reg3067.h" にしてやればとりあえず見つけてもらうことはできる。
https://w.atwiki.jp/monosepia/pages/8963.html
コインチェック不正送金 / 理財局 +クチコミ検索 #bf +ブログサーチ #blogsearch +ニュースサーチ プログラミング言語「Ruby」を活用したITビジネスコンテスト『Ruby biz Grand prix 2021』表彰式開催。ニューノーマル時代の”デジタルライフ”を支える様々なサービスが集結! - PR TIMES 品川駅構内「エキュート品川」がブランド名を統一 施設内で初のサブスクも(みんなの経済新聞ネットワーク) - Yahoo!ニュース - Yahoo!ニュース 輝く“宝石スイーツ”を展開! 品川に新ブランド「Very Ruby Cut」が誕生(クランクイン!) - Yahoo!ニュース - Yahoo!ニュース 「Ruby 3.0.3」「Ruby 2.7.5」「Ruby 2.6.9」が公開【11月29日追記】 - 窓の杜 学生、25歳以下対象の、5日間のオンラインプログラミング合宿「Ruby合宿」の参加者募集 - PR TIMES Rubyは副業にも向いている 国産プログラミング言語のメリットとは? - 財経新聞 「中高生国際Rubyプログラミングコンテスト2021 in Mitaka」の最終審査会が12月4日にオンラインで開催 - EdTechZine(エドテックジン) ザ ストリングス 表参道、ルビー&ルージュ色のクリスマス限定アフタヌーンティー - Fashion Press 福岡県Ruby・コンテンツビジネス振興会議では、「第14回フクオカRuby大賞」を募集しています! - PR TIMES ホットスタッフ主催「Ruby Tuesday」にgoomiey、初恋(突然少年)、pinfu、東京少年倶楽部(音楽ナタリー) - Yahoo!ニュース - Yahoo!ニュース 渋スクフィギュア、アニメ『デート・ア・バレット』より「時崎狂三 - Pigeon Blood Ruby Dress Ver. -」の1/7スケールフィギュアを本日10月26日より予約販売開始! - PR TIMES 25億年前のルビーから生命の痕跡が発見される - GIGAZINE 公式アンバサダー・JO1と一緒に”キュン(ハート)ブレイク”を楽しもう!「キットカット ルビー JO1スペシャルパッケージ」11月4日(木) 数量限定発売 - PR TIMES [1]Ruby biz Grand prix 2021の概要:イノベーティブな社会を創り支えるRuby活用事例大集合! 大賞はどうなる?! 『Ruby biz Grand prix 2021』 - Gihyo Jp ルビー・ローズ、「バットウーマン」制作陣を名指しで非難。 - VOGUE JAPAN 【つぼウォーク#20後編】下北沢Ruby Tuesdayより。80年代NIKE、70年代adidasジャージに本気の気絶(FORZA STYLE) - Yahoo!ニュース - Yahoo!ニュース 「Rails 7.0」の最初のアルファ版がリリース:CodeZine(コードジン) - CodeZine(コードジン) アセンブラとRubyが登場! プログラミング言語の基礎を体系的に学べる「独習」シリーズ - CodeZine(コードジン) Ruby on Rails コミッターの松田 明氏がhachidori株式会社の技術顧問に就任 - PR TIMES 日食なつこ、ニュー・アルバム『アンチ・フリーズ』から台湾アーティスト Ruby Fataleとのコラボ曲「泡沫の箱庭」リリック・ビデオ公開 - Skream! Ruby合宿2021夏 参加者募集開始 - PR TIMES 「中高生国際Rubyプログラミングコンテスト2021 in Mitaka」作品募集を開始。締切は9月30日 - こどもとIT - 窓の杜 プログラム言語「Ruby 3.0.2」リリース - ThinkIT スクリプト言語「Ruby」にセキュリティ更新 ~3件の脆弱性に対処【7月28日追記】 - 窓の杜 自分の世界は自分の力で少しずつ変えられる! Rails Girls Japan 江森真由美さんに聞いたRubyコミュニティの世界 - CodeZine(コードジン) 「Vagrant 3.0」ではコードベースのRubyからGo言語への移行がさらに進行 - CodeZine(コードジン) Ruby on Rails生みの親David Heinemeier Hanssonが登壇!「Fireside Chat with DHH - The Global Dev Study #3」を開催 - PR TIMES コンパイルされ、型付けされ、RubyにインスパイアされたCrystal言語がプロダクションに対応 - Beta Ziliani氏とのQ&A - InfoQ Japan プログラミング言語 Ruby(ルビー)の生みの親 まつもとゆきひろ氏による テックキャンプのカリキュラム監修が決定 - PR TIMES 今最も「アツい」言語はRuby!IT案件市況動向レポートを初公開 - PR TIMES Google CloudがCloud FunctionsでRubyをサポート - infoq.com スクリプト言語「Ruby」にセキュリティ更新 ~「Ruby 2.5」系統は終了 - 窓の杜 人気の純国産プログラミング言語「Ruby」、発祥の地・松江で地域振興の手段になっている|ニュースイッチ by 日刊工業新聞社 - ニュースイッチ Newswitch シューマツワーカー、エンジニア向けオンラインイベント/Ruby on Rails編を開催 - PR TIMES 「中高生国際Rubyプログラミングコンテスト2020 in Mitaka」受賞作品を発表 - EdTechZine(エドテックジン) 南米アマゾンの幻の果実”完熟カムカム”を日本で味わえる「Amazon Ruby」のクラウドファンディングを開始。 - PR TIMES 「Ruby 3.0」に対応した「RubyInstaller」が公開 ~UTF-8への移行も完了 - 窓の杜 「Ruby 3.0.0」リリース、Ruby 2系列の3倍のパフォーマンスを実現 - CodeZine(コードジン) 「Ruby 2」より3倍速い ~「Ruby 3.0.0」が例年通りクリスマスにリリース - 窓の杜 Redwood - Ruby on RailsのエクスペリエンスをJavaScriptで実現 - InfoQ Japan ZMP、高精細3D-LiDAR「RS-Ruby Lite」を発売…最大測定距離230m - レスポンス プロダクト開発が学べるRailsチュートリアル、RubyとRailsの学習ガイドなどを執筆する『五十嵐邦明』氏と連携し、コンテンツ拡充へ - PR TIMES 「Ruby」の開発者 まつもとゆきひろ氏 メドケア株式会社の技術顧問に就任 - PR TIMES ゼロからわかる! Ruby on RailsでのWebアプリ開発:新刊ピックアップ - Gihyo Jp ルビー・ローズ、「バットウーマン」の降板理由を明かす。 - VOGUE JAPAN Rubyプログラミングが1時間が習得できるYoutube講座がスタート! - PR TIMES Rubyスクリプトをバイトコードに変換して読めなくするツール - 日経 xTECH Active ゼロからわかる Ruby 超入門の著者、五十嵐邦明氏がプログラミングスクール「フィヨルドブートキャンプ」の顧問に就任 - PR TIMES 「言語の開発は自分の宇宙をつくる感覚」Rubyの生みの親・まつもとゆきひろの創造性 - Yahoo!ニュース - Yahoo!ニュース 「Ruby 2.7」に対応した「RubyInstaller」が登場 ~「Ruby」を手軽にWindows環境へ導入 - 窓の杜 RailsアプリをRuby 2.7.0で動かして分かったこと - リクルートマーケティングパートナーズ 【Ruby×スポーツで世の中に幸せを届ける】Player!が『Ruby biz グランプリ2019』にて特別賞を受賞! - PR TIMES 2019年1番学ばれた人気プログラミング言語を発表 1位は「PHP」次いで「Ruby」が人気の結果に! - PR TIMES 紛失防止サービスのMAMORIOが『Ruby biz Grand prix 2019』で特別賞を受賞しました! - PR TIMES Ruby合宿2019夏を8月19日~23日の間、島根県立青少年の家(サン・レイク)にて開催しました - PR TIMES Ruby on Rails 6.0がリリース | TECH+ - マイナビニュース 「rest-client」など11のRubyライブラリにバックドアが発見される - ZDNet Japan Rubyのリリースマネジャーを趣味でやるのは無理 - ITpro Webアプリ開発のフレームワーク「Rails」を基礎から学べる『独習Ruby on Rails』発売 - CodeZine(コードジン) Jeremy Evansさん「たのしいRubyの先に,はやいRubyがある。Work, Correct, Fun! Fast」 〜RubyKaigi 2019 3日目 基調講演 - Gihyo Jp nagachikaさん「安定したRubyを届けたい –All bugfixes are incompatibilities–」 〜RubyKaigi 2019 2日目 基調講演:RubyKaigi 2019 Keynote レポート - Gihyo Jp Ruby製HTTPクライアント用gemの「Faraday」を使おう - CodeZine(コードジン) Ruby 2.6の新機能とRuby 2.5のおさらい - Computerworldニュース:Computerworld - 日経xTECH 【DOLK】コラボ限定の雪うさぎ『Magic Ruby』『Star Sapphire』が誕生! - PR TIMES Rubyの魅力は柔軟性、生産性、そして活発なコミュニティ活動――「Ruby biz Grand prix 2018」表彰式レポート - CodeZine(コードジン) 軽量Rubyのmrubyをさらに小型化、「mruby/c」は16ビットマイコンにも実装可能 - @IT MONOist 「社会的責任」からじゃない。 趣味でつくって、おすそ分け。 まつもとゆきひろ|WIRED.jp - WIRED.jp Rubyが魅力的でないとうちのビジネスが困る――クックパッドが取り組むRubyへの貢献とエンジニア育成 - CodeZine(コードジン) Ruby on Rails × AWSにおける最適化 レスポンスタイムを200ms→100msにするためにやったこと - ログミー Ruby | チュートリアル、API、SDK、ドキュメント | AWS デベロッパーセンター - amazon.com Rubyが生まれた頃、そしてこれからのRubyを語ろう――まつもとゆきひろ氏×アーロン・パターソン氏【GitHub Satellite Tokyo】 - CodeZine(コードジン) まつもとゆきひろさん「ことわざに通じるRubyのプログラミングとコミュニティ」 〜RubyKaigi 2018 基調講演 1日目:RubyKaigi 2018 Keynote レポート - Gihyo Jp 第73回 RubyからMySQLを操作してみる - Gihyo Jp Rubyの会社でなぜRust? Cookpadがマイナー言語を採用するまで - ログミー 世界のプログラミング言語(5) 日本が世界に誇る「Ruby」は楽しくプログラムが書ける言語 - マイナビニュース Ruby登場から25年 生みの親、まつもとゆきひろ氏が語る「Rubyという概念が誕生した日」 - ログミー プログラミング言語「Ruby」が愛される理由 - 東洋経済オンライン Vladimir Makarovさん「3x3を達成するには,極めて大きな改善が必要だ」Towards Ruby 3x3 performance 〜RubyKaigi 2017 基調講演 3日目:RubyKaigi 2017 Keynoteレポート - Gihyo Jp まつもとゆきひろさん「Rubyはさまざまな言語やコミュニティから影響を受けデザインされている」The Many Faces of Module 〜RubyKaigi2017 基調講演 2日目:RubyKaigi 2017 Keynoteレポート - Gihyo Jp 中田伸悦さん「Ruby開発者の日常」Making Ruby? ゆるふわRuby生活 〜RubyKaigi 2017 基調講演 1日目:RubyKaigi 2017 Keynoteレポート - Gihyo Jp Rubyはどのように生まれ、世界へ羽ばたいていったのか?まつもとゆきひろさん講演会の全貌をレポート - リクルートマーケティングパートナーズ Ruby-Pythonブリッジライブラリ「PyCall」を使ってRubyでデータ分析をしよう! - CodeZine(コードジン) Wi-FI拡張も簡単! Rubyが使えるGR-CITRUSで電子工作を始めよう - CodeZine(コードジン) 【こっそり学ぶプログラミング言語】Ruby(ルビー)って何ですか? - 株式会社ストライク ASCII.jp:Rubyで電卓を作る - ASCII.jp ASCII.jp:Rubyで「木」を扱う - ASCII.jp 成瀬ゆいさん,Ruby開発の世界に飛び込もう 〜RubyKaigi 2016 基調講演 3日目:RubyKaigi 2016レポート - Gihyo Jp ASCII.jp:Ruby超入門 (後編) - ASCII.jp まつもとゆきひろさん,楽しくプログラミングができる Ruby3の型の提案 〜RubyKaigi 2016 基調講演 1日目 - Gihyo Jp Ruby作者まつもとゆきひろ氏2万字インタビュー(後篇) (1/5) - ASCII.jp ASCII.jp:Ruby超入門(前編) - ASCII.jp 「現状に満足したら死ぬ」 Ruby開発者まつもとゆきひろ氏が語る進化の必然性 | キャリアハック - CAREER HACK まつもとゆきひろさん,Rubyの変化で大事にしているルールを守りつつ「2019年までにRuby 3x3を実現したい」 〜RubyKaigi 2015基調講演 1日目:RubyKaigi 2015レポート - Gihyo Jp オンラインプログラミング学習サービスの「Progate」が、実践的なWEBアプリ開発を学習できる「Ruby on Rails 中級編」を無料で一般公開 - PR TIMES ParseがRubyからGoへ移行,信頼性が大きく向上 - InfoQ Japan Rubyプログラミングの基礎知識 - ThinkIT Ruby から Java へのシフトで大統領選を乗り切った Twitter - InfoQ Japan 組み込みC言語プログラマのためのmruby入門(前編) ―― Rubyとmruby,何が違う? どう違う? - 組み込みネット 「人間様が気分よくプログラミングするための言語」Rubyは何を目指すのか - GIGAZINE Rubyが.NETプラットフォームにやってくる (1/8):CodeZine(コードジン) - CodeZine +クチコミ検索〔Rubyの脆弱性〕 #bf +ブログサーチ〔Rubyの脆弱性〕 #blogsearch +ニュースサーチ〔Rubyの脆弱性〕 GitHub、「GitHub Universe」での発表内容を解説 開発プロセス全体の生産性を引き上げる多数の新機能を提供(Impress Watch) - Yahoo!ニュース - Yahoo!ニュース 「Ruby 3.0.3」「Ruby 2.7.5」「Ruby 2.6.9」が公開【11月29日追記】(Impress Watch) - Yahoo!ニュース - Yahoo!ニュース ビジョナル、国産脆弱性管理ツールを機能強化--ライセンス管理も - ZDNet Japan 7周年を迎えたGitHubセキュリティバグ報奨金プログラム | ギットハブ・ジャパン合同会社 - デジタルPRプラットフォーム プログラム言語「Ruby 3.0.2」リリース - ThinkIT スクリプト言語「Ruby」にセキュリティ更新 ~3件の脆弱性に対処【7月28日追記】 - 窓の杜 セキュアコーディングのeラーニング「KENRO」がPHPに対応。株式会社PR TIMESでの導入も決定 - PR TIMES 新世代プログラミング言語の使いどころ - ITpro 「Zoom」の最新版v5.6.5が公開 ほか - 窓の杜 GitLabが全ユーザー推奨のセキュリティ更新、重大な脆弱性に対処 - CodeZine(コードジン) スクリプト言語「Ruby」にセキュリティ更新 ~「Ruby 2.5」系統は終了 - 窓の杜 SNSでのつぶやきと攻撃に相関関係【Imperva 脆弱性に関する調査】 - EnterpriseZine Docker Hub公開イメージ400万の半数に重大な脆弱性が見つかる - InfoQ Japan 「Ruby 3.0」に対応した「RubyInstaller」が公開 ~UTF-8への移行も完了 - 窓の杜 「Ruby 2」より3倍速い ~「Ruby 3.0.0」が例年通りクリスマスにリリース - 窓の杜 自動コードレビューサービス「Sider」がセキュリティ脆弱性解析機能を強化、最新のBrakemanを提供開始 - CodeZine(コードジン) 脆弱性が多いプログラミング言語、第2位はPHP - 第1位は? - マイナビニュース プログラミング言語に潜む脆弱性がアプリを危険にさらす?--研究者報告 - ZDNet Japan Ruby on RailsにXSS、DoS攻撃の脆弱性 - アップデートの3.2.16/4.0.2が配布 - マイナビニュース GitHub、Mass Assignment利用の脆弱性を突かれる - InfoQ Japan ● Rubyの脆弱性〔Google検索〕 ● Ruby〔Wikipedia〕 Ruby(ルビー)は、まつもとゆきひろ(通称 Matz)により開発されたオブジェクト指向スクリプト言語であり、スクリプト言語が用いられてきた領域でのオブジェクト指向プログラミングを実現する。 また日本で開発されたプログラミング言語としては初めて国際電気標準会議で国際規格に認証された事例となった。 .
https://w.atwiki.jp/programwiki/pages/14.html
人間がプログラミング言語を用いて作成したソフトウェアの設計図(ソースコード)を、コンピュータ上で実行可能な形式(オブジェクトコード)に変換すること。 そのためのソフトウェアをコンパイラという。変換のみを一括して行い、生成したオブジェクトコードの実行は行わない。 ソースコード → コンパイラ → コンパイル → オブジェクトファイル生成
https://w.atwiki.jp/startruby/pages/26.html
Rubyでもドキュメンテーション RDocを使ってみよう! RDocの"書きどころ"は、JavaDocなどと同じ。 クラスの前、メソッドの前、シンボルの前、ファイルのトップなど。 # ドキュメンテーション と、コメントのように書くだけでOK。 修飾してみよう! 作成者やライセンス情報などの書き方 #Authors MitiM #Version 1.0 #Copyright Copyright (C) MitiM, 2010. All rights reserved. #License Ruby License 基本的に で区切れば、好きな項目を作成可能。 見出し H1 ~ H3 は #= 見出しレベル1 #== 見出しレベル2 #=== 見出しレベル3 箇条書きは、-(*)で・。+でナンバリング。 #- レベル1 # - レベル2 #+ レベル1 # + レベル2 RDoc内でコメントにしたいなら #-- # この中はドキュメンテーションされない #++ RDocとして書き出すのは $ rdoc [ソースファイル.rb]
https://w.atwiki.jp/opentfc/pages/86.html
テキストファイルの各行から,正規表現にマッチした行を取り除いて表示する 正規表現 Ruby 配列あれこれ 簡易版wcコマンド(例外処理rescure) ディレクトリとファイルの一覧を配列で取得 モジュールを作る テキストデータを1行ずつ読み込んで表示する テキストデータの行頭と行末に文字列を追加する テキストファイルの各行から,正規表現にマッチした行を取り除いて表示する マッチした部分だけを取り除くのではなく,行ごと取り除く filename = ARGV[0] file = open(filename) while text = file.gets if (text =~ /\#\+BEGIN/) || (text =~ /\#\+END/) next else print text end end 正規表現 Ruby 配列あれこれ a[n]からa[m]まで a[n..m] a[n]からa[m-1]まで a[n...m] a[n]からlen個取り出す a[n, len] 要素を挿入 インデクスnから任意の個数挿入 a[n, 0] a = [0,1,2,3,4,5] = [0, 1, 2, 3, 4, 5] a[2, 0] = ["a", "b"] = ["a", "b"] a = [0, 1, "a", "b", 2, 3, 4, 5] 置き換えもできる。 簡易版wcコマンド(例外処理rescure) ## 簡易版wcコマンド ltotal = 0 # 行数の合計 wtotal = 0 # 単語数の合計 ctotal = 0 # 文字数の合計 ARGV.each do |file| begin input = open(file) l, w, c = 0, 0, 0 while line = input.gets l += 1 c += line.size line.sub!(/^\s+/, "") # 行頭の空白を削除 ary = line.split(/\s+/) # 空白文字で分解する w += ary.size end input.close printf("%8d %8d %8d %s\n", l, w, c, file) # 出力の整形 ltotal += l wtotal += w ctotal += c rescue = ex print ex.message, "\n" # 例外のメッセージを出力 end end printf("%8d %8d %8d %s\n", ltotal, wtotal, ctotal, "total") ディレクトリとファイルの一覧を配列で取得 シェルのワイルドカード風のパターンマッチ Dir.glob("*.html") パターン 意味 * 任意の文字列 ** 「*/」の任意の回数の繰り返し ? 任意の一文字 [abc] a, b, cのいずれか一文字 [^abc] a, b, c以外の一文字 [a-z] ASCII文字のaからzのいずれか {foo,bar,baz} foo,bar,bazのいずれか sortする (.cか.hのいずれかを取得して) Dir.glob("*.[ch]").sort モジュールを作る module モジュール名 モジュールの定義 end 例 module HelloModule Version = "1.0" # 定数の定義 def hello(name) # メソッドの定義 print "Hello, ", name, ".\n" end module_function hello # helloをモジュール関数として公開する end ## includeしない p HelloModule Version # 定数の呼び出し HelloModule.hello("Alice") # メソッドの呼び出し ## includeする include HelloModule p Version hello("Alice") テキストデータを1行ずつ読み込んで表示する filename = ARGV[0] file = open(filename) while text = file.gets print text end file.close file.each_line do |line| print line end とかでもいける テキストデータの行頭と行末に文字列を追加する テキストデータを読み込み行末に文字を追加するには,改行文字を取り除かないといけない file = open(ARGV[0], "r") while text = file.gets text = text.chomp # 改行文字を取り除く print "(",text,")\n" end file.close 以下未整理 1. コマンドラインからのデータ入力 Ruby 2. 便利なオブジェクト Ruby 4. オブジェクトと変数・定数 Ruby 7. メソッド Ruby 8. クラスとモジュール Ruby 繰り返し for文 一般的な構文 for 変数 in オブジェクト do 処理 end doは省略可能. #例 sum = 0 for i in 1..5 sum = sum + i end print sum,"\n" 「..」や「...」は範囲オブジェクトである. オブジェクトを配列にした場合の例を載せる. names = ["aa" , "bb" , "cc" , "dd"] for name in names print name,"\n" end 配列の中から1つずつ要素を取り出して、それぞれを表示する. while文 while 条件 do 処理 end ### 例 1から10までの数を順番に表示する i = 1 while i = 10 print i, "\n" i = i + 1 end timesメソッド 回数が決まっているときはこっちが楽. 繰り返す回数.times do 処理 end 条件分岐 if文 if 条件 then 文 end if 条件1 then 文1 elsif 条件2 then 文2 else 文3 end ファイル入出力 IOクラスのサブクラスであるFileクラスで行える. Fileクラスにはファイルの削除やファイルの属性変更など,ファイルシステムに特化した機能が実装されているが, 基本的な入出力操作はIOクラスから受け継いだメソッドを使う。 ファイルを開いて新しいFileオブジェクトを得るには, openメソッド,またはFile.openメソッドを使う。 io = open(file , mode) io = File.opne(file , mode) modeには以下のモードを指定する. モード 意味 "r" 読み込み専用でファイルを開く "r+" 読み込み / 書き込み用としてファイルを開く "w" 書き込み専用でファイルを開く.ファイルがなければ新たに作成する.またすでに存在する場合には,ファイルサイズを0にする. "w" 読み込み / 書き込み用,その他は"w"と同じ "a" 追加書き込み専用でファイルを開く,ファイルがなければ新たに作成する "a+" 読み込み / 追加書き込み用としてファイルを開く.ファイルがなければ新たに作成する. 算術演算 演算子 演算 + 加算 - 減算 * 乗算 / 除算 % 剰余 ** べき乗 IntegerオブジェクトとFloatオブジェクトを計算した結果はFloatオブジェクトになる. 割り算 数値オブジェクトには,/と%の他にも割り算に関するメソッドがある. x.divmod(y) xをyで割ったときの商と余りを,配列にして返す. Mathモジュール 三角関数や対数関数などの数学っぽいやつの演算で使うモジュール. Math.sqrt(2) のようにモジュール名を明示的に指定する方法と, include Math でインクルードする方法がある. #例 f = 2 p Math.sqrt(f) include Math # Mathモジュールのインクルード p sqrt(f) Mathモジュールで提供されるメソッドで,よく使いそうなメソッド メソッド名 意味 cos(x) 余弦関数 sin(x) 正弦関数 exp(x) 指数関数 log(x) 底をeとする対数 log10(x) 底を10とする対数 lox2(x) 底を2とする対数 sqrt(x) 平方根 Mathモジュールが提供する定数 定数名 意味 PI 円周率 E 自然対数の底e 複素数 require "complex" # Ruby 1.9では不要 a = Complex(3, 5) b = Complex(2, 4) p a*b # = Complex(-14, 22) 実部と虚部を取り出すには,Complex#real,Complex#image p a.real p a.image 配列 配列の作り方 nums = [1, 2, 3, 4, 5] strs = ["a", "b", "c", "d"] 他には,Arraw.newを使う. a = Array.new p a #= [] a = Array.new(5) p a #= [nil, nil, nil, nil, nil] a = Array.new(5, 0) p a #= [0, 0, 0, 0, 0] 要素が文字列で空白を含まないなら,%wを使える. lang = %w(Ruby Perl Python Scheme Pike REBOL) p lang #= ["Ruby", "Perl", "Python", "Scheme", "Pike", "REBOL"] インデックスの使い方 配列にインデックスを指定することで,要素を取り出せる. a[n] 18. 18.9 多重代入 メソッドから複数の返り値を得る。 def hogehoge() ... return x, y, z end このメソッドを使う際に, a, b, c = hogehoge() とすると, a = x, b = y, c = zとなる。
https://w.atwiki.jp/runuouser/pages/11.html
RunUOを自己コンパイルする手順
https://w.atwiki.jp/stera/pages/17.html
インストール方法 WindowsでのRubyのインストール方法のメモ 以下のサイト http //www.ruby-lang.org/ja/downloads/ でRubyのソースコードをダウンロードする. ダウンロードしたファイルは圧縮されているので解凍して「C \temp\src_ruby」へ移動させる."src_ruby"解凍したファイルの名前. 次にMicrosoft Visual Studioのコマンドプロンプトを開く.場所は「スタート 全てのプログラム Microsoft Visual Studio Visual Studio Tools Visual Studio コマンドプロンプト」にある.インストールしてるバージョンによって若干名前は違うので注意.Visual Studioをインストールしてない場合はVisual Studio Express Editionがあるのでそれをインストールする. 次に以下の手順でRubyをコンパイル. cd C \temp\src_ruby win32\configure.bat nmake nmake test nmake DESTDIR=C \ruby install 以上でC \rubyにインストールされる. 次にWindowsにパスを通す.手順は「マイコンピュータを右クリック プロパティ 詳細設定タブ 環境変数」に移動して.「Path」と書かれている環境変数に「[もともと書かれてたパス];C \ruby\usr\bin」と追加してOKボタンを押す. 以上でRubyのインストール作業は終了. 以下追加 railsのインストール方法 以下のサイトからrubygemsのダウンロードする. http //rubyforge.org/frs/?group_id=126 ダウンロードしたファイルを解凍して「C \tmp\rubygems」にコピーする."rubygems"は解凍したファイルの名前である. Visual Studioのコマンドプロンプトを起動して以下の手順でコンパイルする. cd C \tmp\rubygems ruby setup.rb cd C \tmp\src_ruby nmake nmake DESTDIR=C \ruby install で終了なのだが,このままではzlibというライブラリがないのでgemが起動しない.zlibというライブラリをインストールするために.以下のサイトでzlibをライブラリでダウンロードする. http //www.zlib.net/ ダウンロードしたら「C \tmp\zlib」に展開する."zlib"は以下略.展開したフォルダの中の「lib」,「include」フォルダを「C \ruby」にコピーする上書きになるが気にせずにコピー,「zlib1.dll」は「C \ruby\bin」にコピーする. 次にVisual Studioのコマンドプロンプトで以下を実行する. cd \tmp\src_ruby\ext\zlib ruby extconf.rb --with-zlib-include=C \ruby\include nmake nmake DESTDIR=C \ruby install あとはそのまま次を実行してgemからrailsをインストールする. gem install rails -y 以上でrailsのインストール完了.
https://w.atwiki.jp/nopu/pages/158.html
C++で整備された方法らしい。 Makefileも参照 ヘッダに書くもの hoge.h 原理的には,ヘッダに何を書いても構わない。 が,二重定義などがエラーのもとになる。 1. #ifndef ~ #endif で全体を挟む。 2. マクロ定義,関数のプロトタイプ宣言,クラスの宣言 3. #include もこっちに書いた方が楽チンですね。 (書いてないと,original.hpp をインクルードする度に,これが使うヘッダまで毎回インクルードすることになる。) #ifndef HOGE_H #define HOGE_H //このファイルで使うフラグのマクロ定義 #define FLAG_OF_FUNC_A 1 //構造体の定義 typedef struct str{ int val_int; char line[20]; }TYPE; //関数のプロトタイプ宣言。セミコロンを忘れずに! void func_a(int, double, struct str*); //クラスの宣言もここに書く。メソッドも宣言のみ。定義は書かない。 #endif 具体的な定義 hoge.c 1. 使うヘッダは全てインクルードする。 2. using namespace もこっちに書くのがお行儀が良い。 2. main と 宣言 以外の全てをここに書く。 // 使うヘッダは全てインクルードする。 #include stdio.h #include hoge.h //カレントに置いてるときは を使う。 void func_a(int, double, struct str*){ /* 具体的な定義 */ return; // クラスメソッドの定義なんかもこっちに書く。 } メインソース main.c 1. 使うヘッダは全てインクルードする。 2. main は小さくする。 // 使うヘッダは全てインクルードする。 #include stdio.h #include hoge.h void main(void) { /* hogehoge */ } コンパイル 1. コンパイル → オブジェクトの生成 -cでコンパイルだけ。リンクしない。オブジェクトファイル.oを生成する。 最適化とかはこっちで付ける。 gcc -c main.c gcc -c hoge.c 2. リンク → 実行ファイルの生成 *.oを全て渡す。-oで実行ファイル名を指定できる。 gcc main.o hoge.o -o program.out もしhoge.cだけ変更したときは hoge.c だけコンパイルして,リンクしなおせばよい。 -lm とか -lgsl はリンク時に付ける。 リンク時 gcc -c hoge.c gcc -o program.o hoge.o main.o -lm -lgsl -lgslcblas